package com.mp3s.dc.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Tools {
    
    /**
     * 递归遍历文件夹并返回所有文件的列表
     *
     * @param folder 要遍历的文件夹
     * @return 所有文件的列表
     */
    public static List<File> getAllFilesInFolder(File folder) {
        List<File> allFiles = new ArrayList<>();

        // 检查传入的是否是一个文件夹
        if (folder.isDirectory()) {
            // 获取文件夹下的所有文件和子文件夹
            File[] files = folder.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        // 如果是子文件夹，则递归调用
                        allFiles.addAll(getAllFilesInFolder(file));
                    } else {
                        // 如果是文件，则直接添加到列表中
                        allFiles.add(file);
                    }
                }
            }
        } else {
            // 如果传入的不是一个文件夹，则抛出一个异常或进行其他处理
            throw new IllegalArgumentException("The provided path is not a directory: " + folder.getAbsolutePath());
        }

        return allFiles;
    }

}
